package vetxsoft.system;

import java.util.List;
import javax.ejb.Local;
import vetxsoft.entity.Ciudad;
import vetxsoft.entity.Cliente;
import vetxsoft.entity.Consulta;
import vetxsoft.entity.Control;
import vetxsoft.entity.Desparacitacion;
import vetxsoft.entity.DetalleDesparasitacion;
import vetxsoft.entity.DetalleProcedimiento;
import vetxsoft.entity.DetalleVacunacion;
import vetxsoft.entity.DetalleVenta;
import vetxsoft.entity.Especie;
import vetxsoft.entity.Factura;
import vetxsoft.entity.HistoriaClinica;
import vetxsoft.entity.Mascota;
import vetxsoft.entity.Procedimiento;
import vetxsoft.entity.Producto;
import vetxsoft.entity.Raza;
import vetxsoft.entity.TipoProducto;
import vetxsoft.entity.Vacunacion;

/**
 *
 * @author cuero
 */
@Local
public interface IVetexsoftSystem {

    // Ciudad
    public void saveCiudad(Ciudad ciudad) throws Exception;

    public void removeCiudad(Ciudad ciudad) throws Exception;

    public Ciudad buscarCiudad(String value) throws Exception;

    public List<Ciudad> obtenerCiudades() throws Exception;

    // TipoProducto
    public void saveTipoProducto(TipoProducto tipoProducto) throws Exception;

    public void removeTipoProducto(TipoProducto tipoProducto) throws Exception;

    public TipoProducto buscarTipoProducto(String value) throws Exception;

    public List<TipoProducto> obtenerTipoProductos() throws Exception;

    public List<TipoProducto> obtenerTipoProductosActivos() throws Exception;

    // Cliente
    public void saveCliente(Cliente cliente) throws Exception;

    public void removeCliente(Cliente cliente) throws Exception;

    public Cliente buscarCliente(String value) throws Exception;

    public List<Cliente> obtenerClientes() throws Exception;

    // Mascota
    public void saveMascota(Mascota mascota) throws Exception;

    public void removeMascota(Mascota mascota) throws Exception;

    public Mascota buscarMascota(String value) throws Exception;

    public List<Mascota> obtenerMascotas() throws Exception;

    // Producto
    public void saveProducto(Producto producto) throws Exception;

    public void removeProducto(Producto producto) throws Exception;

    public Producto buscarProducto(String value) throws Exception;

    public List<Producto> obtenerProductosActivos() throws Exception;

    public List<Producto> obtenerProductos() throws Exception;

    // Especie
    public void saveEspecie(Especie especie) throws Exception;

    public void removeEspecie(Especie especie) throws Exception;

    public Especie buscarEspecie(String value) throws Exception;

    public List<Especie> obtenerEspecies() throws Exception;

    // Raza
    public void saveRaza(Raza raza) throws Exception;

    public void removeRaza(Raza raza) throws Exception;

    public Raza buscarRaza(String value) throws Exception;

    public List<Raza> obtenerRazas() throws Exception;

    // Factura
    public void saveFactura(Factura factura) throws Exception;

    public void removeFactura(Factura factura) throws Exception;

    public Factura buscarFactura(String value) throws Exception;

    public List<Factura> obtenerFacturas() throws Exception;

    // DetalleVenta
    public void saveDetalleVenta(DetalleVenta detalleVenta) throws Exception;

    public void removeDetalleVenta(DetalleVenta detalleVenta) throws Exception;

    public DetalleVenta buscarDetalleVenta(String value) throws Exception;

    public List<DetalleVenta> obtenerDetalleVenta() throws Exception;

    //HistoriaClinica
    public void saveHistoriaClinica(HistoriaClinica historiaClinica) throws Exception;

    public void removeHistoriaClinica(HistoriaClinica historiaClinica) throws Exception;

    public HistoriaClinica buscarHistoriaClinica(String value) throws Exception;

    public List<HistoriaClinica> obtenerHistoriaClinica() throws Exception;

    //Consulta
    public void saveConsulta(Consulta consulta) throws Exception;

    public void removeConsulta(Consulta consulta) throws Exception;

    public Consulta buscarConsulta(String value) throws Exception;

    public List<Consulta> obtenerConsulta() throws Exception;

    //Vacunacion
    public void saveVacunacion(Vacunacion vacunacion) throws Exception;

    public void removeVacunacion(Vacunacion vacunacion) throws Exception;

    public Vacunacion buscarVacunacion(String value) throws Exception;

    public List<Vacunacion> obtenerVacunacion() throws Exception;

    // DetalleVacunación
    public void saveDetalleVacunacion(DetalleVacunacion detalleVacunacion) throws Exception;

    public void removeDetalleVacunacion(DetalleVacunacion detalleVacunacion) throws Exception;

    public DetalleVacunacion buscarDetalleVacunacion(String value) throws Exception;

    public List<DetalleVacunacion> obtenerDetalleVacunacion() throws Exception;

    //Desparasitacion
    public void saveDesparasitacion(Desparacitacion desparacitacion) throws Exception;

    public void removeDesparasitacion(Desparacitacion desparasitacion) throws Exception;

    public Desparacitacion buscarDesparasitacion(String value) throws Exception;

    public List<Desparacitacion> obtenerDesparacitacion() throws Exception;

    // DetalleDesparasitacion
    public void saveDetalleDesparasitacion(DetalleDesparasitacion detalleDesparasitacion) throws Exception;

    public void removeDetalleDesparasitacion(DetalleDesparasitacion detalleDesparasitacion) throws Exception;

    public DetalleDesparasitacion buscarDetalleDesparasitacion(String value) throws Exception;

    public List<DetalleDesparasitacion> obtenerDetalleDesparasitacion() throws Exception;

    // Control
    public void saveControl(Control control) throws Exception;

    public void removeControl(Control control) throws Exception;

    public Control buscarControl(String value) throws Exception;

    public List<Control> obtenerControl() throws Exception;

    //Procedimiento
    public void saveProcedimiento(Procedimiento procedimiento) throws Exception;

    public void removeProcedimiento(Procedimiento procedimiento) throws Exception;

    public Procedimiento buscarProcedimiento(String value) throws Exception;

    public List<Procedimiento> obtenerProcedimiento() throws Exception;

    //Detalle Procedimiento
    public void saveDetalleProcedimiento(DetalleProcedimiento detalleProcedimiento) throws Exception;

    public void removeDetalleProcedimiento(DetalleProcedimiento detalleProcedimiento) throws Exception;

    public DetalleProcedimiento buscarDetalleProcedimiento(String value) throws Exception;

    public List<DetalleProcedimiento> obtenerDetalleProcedimiento() throws Exception;
}
